package arithmetic;

import java.util.Scanner;

/**
 * 知识点：
 * 1.单行数据之间的差值
 * 2.相邻两行之间的数，例如1和2的关系为，2=1+（3-1）-1 ， 4=2+（5-2）-1
 * HJ35 蛇形矩阵
 * 描述
 * 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形。
 *
 * 例如，当输入5时，应该输出的三角形为：
 *
 * 1 3 6 10 15
 *
 * 2 5 9 14
 *
 * 4 8 13
 *
 * 7 12
 *
 * 11
 *
 *
 * 输入描述：
 * 输入正整数N（N不大于100）
 *
 * 输出描述：
 * 输出一个N行的蛇形矩阵。
 *
 * 示例1
 * 输入：
 * 4
 * 复制
 * 输出：
 * 1 3 6 10
 * 2 5 9
 * 4 8
 * 7
 */
public class TestHW35 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int num = 0;
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            num = in.nextInt();
        }
        String result = demo1(num, 2, 1, "");
        System.out.println(result);
    }

    public static String demo1(int num, int space, int start, String output){
        if(space-1>num){
            return output;
        }
        int start2 = start;
        String result = start2+" ";
        for(int i = space; i<=num; i++){
            start2+=i;
            result+=start2+" ";
        }
        output+=result+"\n";
        start+=space-1;
        space++;
        // System.out.println(space+"::"+start);
        return demo1(num, space, start, output);
    }
}
